home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib17.dsk
/
EXPANDER DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
7KB
|
153 lines
10 REM **********************
20 REM * LANGUAGE EXPANDER *
30 REM * BY JAN COSTENBADER *
40 REM * COPYRIGHT (C) 1984 *
50 REM * BY MICROSPARC, INC *
60 REM * LINCOLN, MA. 01773 *
70 REM **********************
80 PRINT CHR$(4);"BLOADEXPANDER.OBJ0": CALL 768: DIM T(50)
90 HOME : PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": PRINT "THIS IS A DEMONSTRATION OF SOME OF THE"
100 PRINT "FEATURES AVAILABLE ON THE RAM CARD"
110 PRINT "LANGUAGE EXPANDER."
120 & WAIT 4
130 PRINT : PRINT : PRINT "FIRST WE USE &BELL TO RING THE BELL."
140 & WAIT 3
150 FOR I = 1 TO 10: & BELL: NEXT
160 VTAB 10: PRINT : PRINT : PRINT "NOW USE &CLRLN TO CLEAR TO THE EOL AND DELETE AN EXPLETIVE %#&*!!@#$%!@!!"
170 & WAIT 4
180 VTAB 13: HTAB 22: & CLRLN: & WAIT 3
190 VTAB 14
200 PRINT : PRINT "NOW TO LINE 4 AND CLEAR PAGE (&CLRPG)."
210 & WAIT 3
220 VTAB 4: & CLRPG
230 & WAIT 3: HOME
240 PRINT "&< WILL SHRINK THE TEXT WINDOW TO 33"
250 PRINT "CHARACTERS WIDE TO ALLOW EASY EDITING."
260 & WAIT 4
270 & <: LIST 10,100
280 & WAIT 4: & >: PRINT : PRINT
290 PRINT "&> RESTORES WINDOW TO NORMAL.": PRINT
300 & WAIT 3: LIST 10,100
310 & WAIT 3: HOME
320 PRINT "YOU CAN INPUT ANYTHING WITH &INPUT."
330 PRINT : PRINT "COMMAS, COLONS, OR ANY OTHER 'ILLEGAL' CHARACTERS ARE OKAY."
340 & WAIT 2: PRINT
350 PRINT : & INPUT "TRY IT! INPUT ANYTHING:";X$: PRINT : PRINT "SEE, NO 'EXTRA IGNORED'!!!"
360 & WAIT 2: PRINT : PRINT "HERE IS WHAT YOU KEYED IN: "
370 PRINT : PRINT X$
380 & WAIT 3: HOME
390 HOME : PRINT "WE CAN ALSO PRINT A STRING MANY TIMES."
400 PRINT : PRINT "INPUT A SHORT STRING...";: & INPUT X$
410 PRINT : PRINT "HOW MANY TIMES TO PRINT IT..";: INPUT A
420 PRINT : & R PRINT X$,A
430 PRINT : PRINT "THIS WAS DONE WITH &RPRINT."
440 & WAIT 5
450 & WAIT 5
460 HOME : PRINT "DO YOU HAVE A PRINTER ";: INPUT A$
470 IF LEFT$(A$,1) < >"Y" THEN 570
480 PRINT : PRINT "DO YOU HAVE A PARALLEL CARD IN SLOT 1 ";: INPUT A$
490 IF LEFT$(A$,1) < >"Y" THEN 570
500 PRINT : PRINT "GOOD...TURN THE PRINTER ON PLEASE."
510 & WAIT 5: PRINT : PRINT "&P WILL TURN THE PRINTER ON."
520 & WAIT 2: & P
530 PRINT : PRINT "&PF WILL TURN IT OFF."
540 & WAIT 2: & PF
550 PRINT : PRINT "&P80 AND &P132 WILL TURN THE PRINTER ON WITH 80 OR 132 COLUMNS"
560 & WAIT 5
570 HGR : HOME : VTAB 23
580 PRINT "&BKGND= WILL FILL THE HI-RES SCREEN WITH";
590 PRINT "THE HCOLOR SPECIFIED."
600 FOR I = 0 TO 7: & BKGND = I: VTAB 23: HTAB 24: & CLRLN: PRINT "&BKGND = ";I: & WAIT 1: NEXT
610 PRINT : PRINT "NUMBERS GREATER THAN SEVEN GIVE"
620 PRINT "INTERESTING RESULTS."
630 & WAIT 2: FOR I = 100 TO 105: & BKGND = I: VTAB 23: HTAB 24: & CLRLN: PRINT "&BKGND = ";I: & WAIT 2: NEXT
640 PRINT : PRINT : PRINT "WE CAN ALSO WRITE CHARACTERS ON"
650 PRINT "THE HI-RES SCREEN AT ANY LOCATION."
660 & WAIT 5: PRINT : PRINT "THE UPPER LEFT HAND CORNER OF THE STRING";
670 PRINT "WILL BE AT THE X,Y COORDINATES SELECTED.";: & WAIT 5
680 HOME : VTAB 22: PRINT "WHAT X COORDINATE DO YOU WANT:";: INPUT X
690 PRINT "NOW THE Y COORDINATE:";: INPUT Y
700 PRINT "NOW WHAT DO YOU TO SAY..";: & INPUT A$
710 & BKGND = 0: & H PRINT X,Y,A$
720 & WAIT 4: & BKGND = 0
730 A$ = "INCREMENTING X BY 1 AND DOUBLE PRINTING"
740 B$ = "BRINGS INTERESTING RESULTS."
750 & H PRINT 0,50,A$: & H PRINT 0,60,B$
760 & WAIT 4: & H PRINT 1,50,A$: & H PRINT 1,60,B$
770 & WAIT 5: & BKGND = 0: PRINT : PRINT : PRINT
780 PRINT "WE MAY ALSO PRINT VERTICALLY.": & WAIT 3
790 & BKGND = 0: PRINT "HERE IS THE VALUE OF SIN(3)"
800 & V PRINT 160,0, SIN(3): & WAIT 5
810 TEXT
820 HOME
830 PRINT "COMPUTED GOTO'S AND GOSUB'S ARE OK"
840 PRINT : PRINT "&GOTO 10*X IS A LEGAL STATEMENT"
850 X = 87: & GOTO 10 *X: & WAIT 4
860 PRINT "OOP'S COMPUTED GOTO DOSEN'T WORK"
870 PRINT : PRINT "WE ARRIVED HERE VIA COMPUTED GOTO!": & WAIT 5
880 HOME : PRINT : PRINT "&POKE IS CHANGED TO ALLOW HEX INPUT"
890 PRINT "THE FORMAT IS:"
900 PRINT : PRINT " &POKE $300,$FF"
910 PRINT : PRINT "ANY COMBINATION OF DECIMAL AND HEX "
920 PRINT "IS ALLOWABLE....."
930 PRINT : PRINT "THE ONLY RESTRICTION IS THAT HEX MUST BE";
940 PRINT "PRECEDED BY A '$' (IT MAY BE STORED AS A STRING."
950 PRINT : PRINT "FOR EXAMPLE, &POKE A$,255 IS LEGAL"
960 PRINT "WHERE A$= $0300"
970 PRINT : PRINT
980 PRINT : & INPUT "TYPE A TWO DIGIT HEX NUMBER:";A$
990 IF LEFT$(A$,1) = "$" THEN 1010
1000 PRINT : PRINT "REMEMBER TO PRECEDE THE NUMBER BY A $": GOTO 980
1010 PRINT : PRINT "THIS NUMBER IS NOW PUT IN MEMORY BY:"
1020 PRINT : PRINT " POKE $0300,A$"
1030 & POKE $0300,A$
1040 PRINT : PRINT "WHERE A$ IS THE NUMBER YOU TYPED."
1050 & WAIT 5
1060 HOME : PRINT : PRINT "WE CAN RECOVER THE NUMBER WITH &PEEK."
1070 PRINT : PRINT "WITH &PEEK $300, X$ WE CAN READ"
1080 PRINT "MEMORY LOCATION $0300 AND STORE IT"
1090 PRINT "IN VARIABLE LOCATION X$."
1100 PRINT : PRINT "BY PRINTING X$, WE CAN SEE THE HEX VALUE";
1110 PRINT "OF LOCATION $0300."
1120 PRINT : PRINT "HIT THE SPACE BAR TO SEE.": GET S$
1130 PRINT : & PEEK$0300,X$: PRINT "&PEEK $0300, X$=";X$
1140 & WAIT 5: PRINT : PRINT "ANY COMBINATION OF HEX OR DEC WILL WORK"
1150 & WAIT 4
1160 PRINT : PRINT "& CALL WORKS THE SAME AS PEEK AND POKE.": PRINT "WE MAY CALL A ROUTINE USING HEX NOTATION."
1170 PRINT : PRINT "FOR EXAMPLE, THE BELL ROUTINE AT $FBDD "
1180 PRINT "MAY BE CALLED WITH &CALL $FBDD.": & WAIT 6
1190 PRINT : PRINT "LIKE THIS ": & CALL $FBDD
1200 & WAIT 3: HOME : PRINT " THERE IS ALSO A MOD FUNCTION."
1210 PRINT : PRINT "THE FORMAT IS & MOD X,Y,A ": PRINT
1220 PRINT "THIS IS THE SAME AS THE INTEGER BASIC ": PRINT "STATEMENT....": PRINT
1230 HTAB 10: PRINT "A = X MOD Y"
1240 PRINT : INPUT "TRY IT NOW...INPUT AN INTEGER:";X
1250 PRINT : INPUT "NOW INPUT ANOTHER INTEGER LESS THAN THE FIRST:";Y
1260 & MODX,Y,A
1270 PRINT : PRINT X;" MOD ";Y;" = ";A
1280 & WAIT 4
1290 HOME : PRINT " THE & BEGIN AND & DO CAN SAVE SOME "
1300 PRINT "EXECUTION TIME ": & WAIT 3
1310 PRINT : PRINT " WE WILL NOW EXECUTE A LOOP USING GOTO "
1320 PRINT : PRINT "WHEN YOU ARE READY HIT ANY KEY"
1330 GET S$:X = 1
1340 X = X +1:Y = SIN(X): HOME : PRINT X
1350 IF X <300 THEN 1340
1360 & BELL: PRINT : PRINT "LOOP DONE"
1370 & WAIT 4: PRINT : PRINT "NOW WE WILL EXECUTE THE SAME LOOP "
1380 PRINT "USING &BEGIN AND & DO"
1390 PRINT "HIT ANY KEY WHEN YOU ARE READY": GET S$
1400 X = 1: & BEGINA%
1410 X = X +1:Y = SIN(X): HOME : PRINT X
1420 IF X <300 THEN & DOA%
1430 & BELL: PRINT : PRINT "LOOP DONE"
1440 PRINT : PRINT "THERE... THAT SHOULD HAVE BEEN FASTER"
1450 PRINT "BY ALMOST 2 SECONDS!!"
1460 & WAIT 5
1470 HOME : PRINT "WELL, THAT'S ABOUT IT..."
1480 & WAIT 3
1490 PRINT : PRINT "EXCEPT FOR WAIT......"
1500 PRINT : PRINT "ALL OF THE DELAYS WERE GENERATED BY"
1510 PRINT : PRINT "& WAIT T WHERE T IS NUMBER OF SECONDS."
1520 & WAIT 4:
1530 & BELL: PRINT : PRINT "THANKS FOR WATCHING!!"